查看原文
其他

Windows VDA定制优化版本选择之我感

2017-07-18 钱凯 云技术实践

平时做桌面项目的时候,很多工程师都在问我一个问题,为什么有些项目的桌面那个启动、登录速度很快,为什么3D的效果比我这个好?但对比下他的硬件配置还不如我。



这类很明显带有最终用户使用体验的问题,我相信无论是做哪家桌面的工程技术人员其实都有遇到,当然这里面其实牵涉到的技术面有不少,从系统优化、链路优化、个人数据访问、AD系统集成、认证等等不一而足,今天我主要想来说在虚拟桌面中每个用户、工程师都会用到的Windows系统本身。今天讨论的VDA或者我们叫做虚拟桌面/云桌面,这里主要是说交付给最终用户使用的那个“东西”,不过多涉及到后台的各种交付、策略配置组件、客户端等等。


在现在的虚拟桌面市场中,大家用的最多的是Windows7,其次是WindowsServer 2008 R/2012 R2,以及现在慢慢开始被大家接受的Windows10。

其实无论是哪个版本的操作系统,我们在交付给最终用户之前一定要对这个VDA系统做一次定制/优化。否则在我看来这就是对于客户的不尊重和不专业。



为什么这么说呢?其实稍稍了解Windows系统的朋友都知道,微软的Windows产品每一个大版本出来之后,RTM版基本没太多人上生产环境,一般都要等到出SP1之后才会逐步在市场中推广开来。做微软的圈子的人肯定都知道一句玩笑话:MS东西没出SP1你敢用吗?


这个也从一个侧面ServicePack/hotfix这种东西对于系统稳定性提升有多重要。那我们就来看看我们常用的Windows7的发布历程:


微软于2009年10月22日正式发布了Windows7


2011年2月22日发布了Windows7 SP1


不查不知道,突然发觉Windows7都已经发布8年了,SP1版本都6年半了。大家可以自己感受一下过去10年IT的变化之快速,如果今天拿着一个2011年出版的Windows7 SP1上生产,您觉得这个符合时代的发展吗?


就好比上个月发生的“WannCry”勒索病毒,病毒发生后其实最正确的方法就是按照MS的要求和建议安装MS17-010的补丁(关于这个病毒和防护措施说明,请见MSMVP浩哥的说明,抵抗勒索病毒的正确姿势)。不少非IT圈的朋友问我,为啥这个最简单有效的办法,平时我们的IT都不去做。我当时的回复就是:这个太low。


君不见现在做IT的公司如果说自己不是做云计算、大数据、iot、ML真是都不好意思出门见人。但是IT系统维护这些最基础的事情缺往往被人所忽视。其实微软的补丁更新系统可以说独步整个IT界,基本上别的厂商在这个层面上基本不能望其项背。


#可能有人会说这是Windows系统写的差,所以很多漏洞。其实无论是Linux,MAC,Android系统都有漏洞,而且数量一点都不少,千万不要以为用了MAC,用了iPhone就可以高枕无忧,该升级的时候千万不要不升。

补丁对于系统到底能带来哪些改变呢:

  1. 如上所述的安全漏洞。在这个IT安全越来越严峻的世界,这个可以说是最廉价而又十分有效的终端系统防护方案之一。

  2. 功能增强,这里包含了很多我们普通用户可能平时留意不到的内容。比如:网络性能、根证书链、特定传输协议优化(比如SMB)等等,随不明显但却对用户最终使用会有明显改观。

  3. 新功能、新版本,比如.net framework升级,以及现在MS还会推送硬件驱动。


备注:目前WindowsUpdate可以推送XenServer7.x的Guesttools驱动

所以我们现在一台Windows7SP1安装完成后如果使用WindowsUpdate来更新补丁会发现得有差不多200个补丁需要去安装。


这就是这么多年历史积累下的各种组件的增强,可以说今天安装完成所有补丁的Windows7 SP1和当年发布的Windows7 SP1简直是天壤之别的两个产品。


这个时候就有朋友会说了,我现在如果真的把一个干净的Windows7 SP1进行补丁升级,可能几天都不能完成,下载补丁过程很慢。其实这个原因很简单,因为你的系统太旧了、底层部分组件太老了。Windows7 SP1中,系统自带的WindowsUpdage Agent已经不匹配现在的WindowsUpdate系统,导致其遍历补丁速度非常慢(曾经我等过2天,说多了都是泪)所以为了加速这个过程,我们需要先手动在的系统上安装如下两个补丁:


3020369

3172605 


#请先安装3020369,3020369是3172605的前序补丁。


这两补丁安装好了以后,通过WindowsUpdate就会非常快的检索、遍历出需要安装的补丁,后续的下载速度就完全看网速了。


当然环境里面如果有WSUS/SCCM之类的管理软件就更为简单了,直接尤其推送。所以在企业级环境中,强烈推荐管理员不是这类平台。其中WUSU是MS一个免费组件,简单好用。


那么说完补丁,这个只是完成了一个基础,那么接下来就需要对Windows系统进行优化。其实说是优化(这里不存在什么加速这种事情)。在我看来优化其实就是对于Windows系统的“裁剪”,意思就是说把Windows系统在虚拟桌面体系中不需要的组件、服务、策略给删除、停用、调整。


#这个动作其实没有一个标准值,很多是基于不同用户应用再来不断调整优化。这个只是列出个人一些经验。


从我个人来说,我的基础镜像会做如下几个操作:


  1. 添加删除组件里面,删除除了: .net framework 3.5,Windows Media Player, IE 之外的所有其他组件。

  2. 设定Pagefile大小(特别是在物理内存大于4G以上的场景中)

  3. 停用没有必要使用的Service,

  4. 停用没有必要使用的Schedule Task,

  5. 停用包括Aero、鼠标在内的特效等,


停用的Service、ScheduleTask这个确实是个技术活,过去这个操作都是需要靠经验或者参考一些KB来设定。我曾经也做个一个PSH脚本,来完成相应工作。现在Citrix提供了一个叫CitrixOptimizer的VDA镜像优化工具,这样可以极大的方便我们一线人员的使用。(期盼好久啊。。。)


https://support.citrix.com/article/CTX224676




目前此工具支持Windows7,10,Server2012, 2016。默认自带了相关模板,后续相信会不断完善给予更多的支持。


#Tools不是万能的,请根据实际情况调整。


完成这个之后,对于常规使用来说,VDA的母镜像已经可以使用了。但是我们都知道一般情况下我们会给用户都是Administrator及管理员权限。其实在任何系统中,当你拥有了系统管理员这个权限,控制就会变的很难做,为什么大家都说Linux系统稳定,其实有一个很重要原因是在Linux设计中,其管理体系在默认情况下,用户在Linux是没有Root及超管权限,那么其核心的系统就不会受到用户侧的各种操作的影响,进而减少系统的不稳定。


可是在Windows体系中,无论是从系统的设计逻辑、用户使用习惯和应用的特点,我们是很难不给予用户Administrators的权限,那么就导致前端用户会由于误操作、应用相互干扰导致虚拟桌面无法正常工作。比如说有用户自己修改IP地址,自行删除一些桌面Agent,胡乱修改系统变量等等不一而足。


而过去,为了限制用户的操作,一般都需要借助GPO来完成这种操作,但是对于很多非MS背景的同学来说这个太复杂了。


所以Citrix通过一个叫WEM(WorkspaceEnvironment Management)来实现对于系统环境的设定。


比如,我通过设定限制用户不能使用WindowsUpdate,Help这些功能。


#补丁应该在交付给用户前就安装好,而不是让用户去安装各种补丁。




限制用户不能使用控制面板或者面板中的一些特定组件。




这样来说,在给予用户超级管理员权限情况下,也能合理控制用户,可以使用整个桌面,以及定制化后的系统,这样才是最适合每个不同客户的系统。

其实从我个人的角度来说,虚拟桌面这种产品他还是需要和用户的管理体系对接,完全开放、完全不受控、不考虑标准化,也许初期使用没问题。到了中后期,越多不受控的虚拟桌面,对于用户方的运维压力将是史无前例。太多的用户跟我们反馈过,如果初期不受控,后面的运维工作真是一夜回到解放前。


#在这里其实要澄清一个观点,很多人说做标准化桌面一定要用标准/池化/Non-persistent桌面,其实我个人观点倒是不一定。你可以通过技术手段来做这种重启及还原的桌面,也可以给用户完全自控的专有/persistent桌面,但是配套管理体系,比如:运行安装的软件是公司统一规定好的,安装非此清单中的软件就是违规。


从我个人来说,我非常推崇虚拟桌面对于IT前端运维的管理、控制特性。操作层面推崇的是一种技术+管理融通的方式,而不是死板的只使用技术来达到最终结果。



以上这些信息对于Windows7 SP1,WindowsServer 2012都是适用的,但是对于Windows10却不完全适用。这个主要的区别还是在Windows10系统自身的版本更新的体系有关。


相信大家都知道,过去无论是Windows客户端系统,7,8/8.1还是服务器系统2008R2,2012R2都是通过ServicePack+hotfix方式来更新系统。


但是到了Windows10,基本上每半年到一年,都会有一个完整的版本分发出来。每次新的版本发布都会带来大量的新功能、新组件、新服务。其实这也是MS为了规避过去那种ServicePack+hotfix的更新带来对于新功能的不能快速迭代的一种新时代的新方法。毕竟当前的IT发展,敏捷开发、快速迭代是一个大趋势。



从这张图我们可以看出目前发布的3个主要的Windows10版本,其ScheduleTask,Service,DefaultApp的数量都是会有一些不同,那么进而导致其对于CPU/RAM等系统资源消耗量的不同。



那么问题来了,如果我们要使用Windows10作为VDA的时候,我们应该选择哪个版本,RTM,Anniversary或者Creator版本。(具体版本号请大家自行检索)


其实MS在设计Windows10体系的时候就有考虑过这个问题,所以除了过去我们熟识的专业版、企业版之外,他还引入新的Serviceoptions,


https://blogs.technet.microsoft.com/enterprisemobility/2016/01/06/navigating-the-windows-10-servicing-options/



其中InsideProgram类似于BETA版,CB就是最新版本,CBB是一个稳定版本分支,LTSB则是以稳定为主。


所以MS推荐在企业级场景中,是使用CBB和LTSB这两种版本,个人用户推荐Inside和CB版本。比如我个人电脑目前就是使用最新的CB版本1703。


那么在当下,哪些版本是CBB和LTSB版本呢。在如下的MS网站,MS给出了每个版本的状态,


https://technet.microsoft.com/en-us/windows/release-info.aspx



#请注意,这里MicrosoftRecommend推荐的1703是其最新的版本,这个主要是对于个人用户使用。但是在VDA/虚拟桌面场景中,我们需要参考MS推荐优先选择CBB/LTSB版本。


所以个人建议在虚拟桌面场景中,比较合适的应该选择:1607,1511,1507这三个版本。


以上信息,仅代表个人观点,供参考。


本文转发自如下博客地址:


http://kaiqian.blog.51cto.com/236001/1944955


     推荐活动

tuijianhuodong



读而思

duersi

编辑完成后,将内容复制粘贴到微信后台素材管理的编辑器中即可。



长按识别二维码



相关阅读:

高端私有云项目交流群,欢迎加入!

北京最豪华酒店:华尔道夫酒店停止使用VPN

工信部否认要运营商禁止个人VPN业务:规范对象是无资质者

一文读懂OpenStack Glance是什么

互联网企业网络信息安全实践

Prometheus(普罗米修斯)用户档案:动态化特性加速weaveworks云原生程序的发展

附PDF下载:《迁移到原生云应用架构》第二部分

加入中国最活跃的OpenStack技术讨论QQ群,加群主QQ:502207183,并注明城市、行业、技术方向。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存